home *** CD-ROM | disk | FTP | other *** search
/ PC Media 22 / PC MEDIA CD22.iso / share / prog / datalib2 / dbrpt.cpp < prev    next >
C/C++ Source or Header  |  1995-08-17  |  1KB  |  55 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "database.hpp"
  5.  
  6. main(int argc, char *argv[])
  7. {
  8.  char *wsp,ws[128];     // Useful work space
  9.  int inc=0;             // Flag results to be printed in #include form
  10.  
  11.  if (argc<2)
  12.  {
  13.   printf("Usage : dbrpt filename [-c]\n");
  14.   printf("        -c option prints in #include form for header files\n");
  15.   exit(1);
  16.  }
  17.  if (argc>2) if (!strcmpl(argv[2],"-c")) inc=1;
  18.  
  19.  strcpy(ws,argv[1]); strupr(ws);
  20.  if (wsp=strchr(ws,'.')) *wsp=0; if (wsp=strchr(ws,'\\')) *wsp=0;
  21.  
  22.  // Open database
  23.  
  24.  database *db=new database(argv[1]);
  25.  if (db->isvalid())
  26.  {
  27.   delete db;
  28.   printf("\nError on opening database !"); exit(1);
  29.  }
  30.  
  31.  // Dump database stats.
  32.  
  33.  if (inc) printf("// Database %s, include file\n\n// ",ws);
  34.  else printf("\n");
  35.  printf("Database : %s has %ld records of length %d with %d fields\n",
  36.     ws,db->getnrec(),db->getreclen(),db->getnfield());
  37.  
  38.  // Dump field stats
  39.  
  40.  for(int i=1; i<=db->getnfield(); i++)
  41.  {
  42.   field *fld;
  43.  
  44.   fld=db->getfield(i);
  45.   if (inc) printf("\n#define %-10s %3d   // ",fld->getname(),i);
  46.   else printf("\nField %3d - %-10s ",i,fld->getname());
  47.   printf("Type %c, Length %3d, Rdp %d",
  48.       fld->gettype(),fld->getlen(),fld->getrdp());
  49.  }
  50.  
  51.  printf("\n\n");
  52.  delete db;
  53.  exit(0);
  54. }
  55.